import pyttsx3
import threading
from datetime import datetime
import random



# 自定义函数
# -----------------------------------封装获取当前运行的协议ip和端口-----------------------------------
def my_gethost():
    return 'http://127.0.0.1:5000'

# -----------------------------省份转换-------------------------------
def get_province_by_plate(plate_short):
    provinces = {'京': '北京', '津': '天津', '沪': '上海', '渝': '重庆', '冀': '河北', '豫': '河南', '云': '云南',
                 '辽': '辽宁', '黑': '黑龙江', '湘': '湖南', '皖': '安徽', '鲁': '山东', '新': '新疆', '苏': '江苏',
                 '浙': '浙江', '赣': '江西', '鄂': '湖北', '桂': '广西', '甘': '甘肃', '晋': '山西', '蒙': '内蒙古',
                 '陕': '陕西', '吉': '吉林', '闽': '福建', '贵': '贵州', '粤': '广东', '青': '青海', '藏': '西藏',
                 '川': '四川', '宁': '宁夏', '琼': '海南'}
    if plate_short in provinces:
        return provinces[plate_short]
    else:
        return None

# ------------------------多线程文本转语音---------------------------

def my_tts(text):
    def tts_thread():
        # 初始化语音引擎
        engine = pyttsx3.init()

        # 获取当前语速
        current_rate = engine.getProperty('rate')
        # 设置新的语速（例如：将语速设置为130）
        engine.setProperty('rate', 130)

        # 将文本发送到语音引擎进行转换
        engine.say(text)
        # 执行说出文本的操作
        engine.runAndWait()

    # 创建一个新线程并启动它，执行语音输出任务
    t = threading.Thread(target=tts_thread)
    t.start()

# --------------------生成随机字符-----------------------



def my_generate():
    now = datetime.now()
    time_str = now.strftime('%Y%m%d%H%M%S')
    rand_str = ''.join(random.choices('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', k=6))
    result = time_str + rand_str
    return result

    # 生成指定长度的随机字符串
    random_string = ''.join(random.choice(characters) for _ in range(length))

    return random_string


# # 车牌识别api
# def my_car_number(path):
#     from aip import AipOcr
#     # 填写你的APP ID、API Key和Secret Key
#     APP_ID = '34508849'
#     API_KEY = 'CjSAAmGPEnEPcVsHXn1jePH5'
#     SECRET_KEY = 'cNAxcoxIKV98tH9QV8WHsRqBT9s1soFz'
#
#     # 创建AipOcr对象
#     client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
#
#     # 读取图片
#     def get_file_content(filePath):
#         with open(filePath, 'rb') as fp:
#             return fp.read()
#
#     # 配置参数
#     options = {}
#     options["multi_detect"] = "true"
#
#     # 调用车牌识别API
#     res = client.licensePlate(get_file_content(path), options)
#
#     # 获取车牌号码
#     plate_number = res['words_result'][0]['number']
#     return plate_number
